/*
Problem: 1119E
Date: 19-01-2024 12:08 PM
*/
#include <iostream>
using namespace std;
int n;
long long a[300000];
int main() {
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i];
}
int i = 0; // index of small side
int j = 0; // index of 2 larger sides
long long count = 0;
while(i < n && j < n) {
if(a[i] == 0) {
i++;
}else if(i == j) {
count += a[i] / 3;
a[i] %= 3;
j++;
}else if(a[j] >= 2) {
long long tris = min(a[i], a[j] / 2);
count += tris;
a[i] -= tris;
a[j] -= 2 * tris;
}else {
j++;
}
}
cout << count << endl;
}
1538B - Friends and Candies | 580A - Kefa and First Steps |
1038B - Non-Coprime Partition | 43A - Football |
50A - Domino piling | 479A - Expression |
1480A - Yet Another String Game | 1216C - White Sheet |
1648A - Weird Sum | 427A - Police Recruits |
535A - Tavas and Nafas | 581A - Vasya the Hipster |
1537B - Bad Boy | 1406B - Maximum Product |
507B - Amr and Pins | 379A - New Year Candles |
1154A - Restoring Three Numbers | 750A - New Year and Hurry |
705A - Hulk | 492B - Vanya and Lanterns |
1374C - Move Brackets | 1476A - K-divisible Sum |
1333A - Little Artem | 432D - Prefixes and Suffixes |
486A - Calculating Function | 1373B - 01 Game |
1187A - Stickers and Toys | 313B - Ilya and Queries |
579A - Raising Bacteria | 723A - The New Year Meeting Friends |